package com.kpmg.datalake.vbaapi.vo;

import com.alibaba.fastjson.JSONObject;

import java.io.Serializable;
import java.util.List;

/**
 * @author timqian
 * @author alex [alex.zhao@kpmg.com]
 * create 2018-05-21
 * desc VBA前段报表选项对象
 */
public class VbaReportOptionVO<T> implements Serializable {
    private static final long serialVersionUID = -3189549936417337367L;
    /**
	 * 选项Id
	 */
	private String optionId;
	
	/**
	 * 选项名字
	 */
	private String optionName;
	
	/**
	 * 选项的label
	 */
	private String optionLabel;
	
	/**
	 * 选项类型, 目前文本框/日期/下拉菜单
	 */
	private String optionType;
	
	/**
	 * 默认显示的值
	 */
	private String defaultValue;
	
	/**
	 * 针对下拉菜单, 提供的选项
	 */
    private List<T> optionDictionaryList;

	public VbaReportOptionVO(String optionId, String optionName, String optionLabel, String optionType) {
		this.optionId = optionId;
		this.optionName = optionName;
		this.optionLabel = optionLabel;
		this.optionType = optionType;
	}
	
	public VbaReportOptionVO(String optionId, String optionName, String optionLabel, String optionType, String defaultValue) {
		this.optionId = optionId;
		this.optionName = optionName;
		this.optionLabel = optionLabel;
		this.optionType = optionType;
		this.defaultValue = defaultValue;
	}

	public String getOptionId() {
		return optionId;
	}

	public void setOptionId(String optionId) {
		this.optionId = optionId;
	}

	public String getOptionName() {
		return optionName;
	}

	public void setOptionName(String optionName) {
		this.optionName = optionName;
	}

	public String getOptionLabel() {
		return optionLabel;
	}

	public void setOptionLabel(String optionLabel) {
		this.optionLabel = optionLabel;
	}

	public String getOptionType() {
		return optionType;
	}

	public void setOptionType(String optionType) {
		this.optionType = optionType;
	}

	public String getDefaultValue() {
		return defaultValue;
	}

	public void setDefaultValue(String defaultValue) {
		this.defaultValue = defaultValue;
	}

    public List<T> getOptionDictionaryList() {
		return optionDictionaryList;
	}

    public void setOptionDictionaryList(List<T> optionDictionaryList) {
		this.optionDictionaryList = optionDictionaryList;
	}


    @Override
    public String toString() {
        return "VbaReportOptionVO" + JSONObject.toJSONString(this);
    }
}
